Hazelcast Caching একটি শক্তিশালী এবং স্কেলেবল ক্যাশিং সিস্টেম, যা ডিস্ট্রিবিউটেড ক্যাশিং, ডেটা এক্সেস, এবং স্টোরেজের জন্য ব্যবহৃত হয়। Hazelcast ক্যাশিং ব্যবহার করে অ্যাপ্লিকেশনগুলির পারফরম্যান্স এবং স্কেলেবিলিটি উন্নত করা যায়, কারণ এটি ডেটা ইন-মেমরি ক্যাশ করে, যা দ্রুত অ্যাক্সেস নিশ্চিত করে।
Hazelcast Caching ডিস্ট্রিবিউটেড ক্যাশিং সমর্থন করে এবং এটি JCache (JSR 107) মান অনুসরণ করে, যা ক্যাশিং অ্যাপ্লিকেশনের জন্য একটি স্ট্যান্ডার্ড API। Hazelcast ইন-মেমরি ডেটা স্টোরেজের মাধ্যমে ক্যাশিং টেকনিকের সঠিক ব্যবহার নিশ্চিত করে, যা পারফরম্যান্সকে উল্লেখযোগ্যভাবে বৃদ্ধি করে।
Hazelcast ক্যাশে ডেটা ইন-মেমরি স্টোর করে এবং এটি মাল্টিপল নোডে বিতরণ করে, যার ফলে ক্লাস্টারের মধ্যে ডেটার অ্যাক্সেস আরও দ্রুত হয়। এটি একাধিক সার্ভারে ডেটা সঞ্চয় করতে সহায়ক এবং লোড ব্যালান্সিং নিশ্চিত করে।
Hazelcast JCache সমর্থন করে, যা ক্যাশিংয়ের জন্য একটি স্ট্যান্ডার্ড API। এটি ক্যাশের জন্য একটি সাধারণ ইন্টারফেস প্রদান করে এবং Java অ্যাপ্লিকেশনগুলিতে ক্যাশ ব্যবস্থাপনা সহজ করে।
Hazelcast Near Cache ব্যবহার করে, যা ক্লাস্টারের কাছাকাছি থাকা ডেটা দ্রুত অ্যাক্সেস করতে সক্ষম। এই ক্যাশিং প্রযুক্তি ক্লাস্টারের মধ্যে হিট রেট উন্নত করে এবং অ্যাপ্লিকেশনের পারফরম্যান্স বাড়ায়।
Hazelcast ক্যাশে বস্তুগুলির eviction (অথবা মেমরি থেকে ডেটা মুছে ফেলা) এবং expiration (অথবা ডেটার মেয়াদ শেষ হওয়া) কনফিগারেশন সমর্থন করে। আপনি ক্যাশে বস্তুগুলির জন্য সময়সীমা সেট করতে পারেন, যা স্বয়ংক্রিয়ভাবে মেমরি ক্লিনআপের জন্য সহায়ক।
Hazelcast বিভিন্ন ক্যাশিং পলিসি যেমন LRU (Least Recently Used), LFU (Least Frequently Used) এবং FIFO (First In First Out) সমর্থন করে, যা ক্যাশে বস্তুগুলি পরিচালনা এবং অপটিমাইজ করার জন্য ব্যবহৃত হয়।
Hazelcast ক্যাশিং সিস্টেম ইন-মেমরি কাজ করে, যার ফলে এটি ডিস্ক অ্যাক্সেসের তুলনায় অনেক দ্রুত। এটি অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করে এবং ডেটাবেস বা অন্যান্য স্টোরেজ সিস্টেমের উপর চাপ কমিয়ে দেয়।
Hazelcast একটি শক্তিশালী Cache API প্রদান করে, যা ব্যবহারকারীদের ডিস্ট্রিবিউটেড ক্যাশ পরিচালনা করতে সাহায্য করে। এটি একটি কাস্টম ক্যাশ তৈরি করতে দেয় এবং ক্যাশে বস্তু অ্যাড, রিমুভ এবং ফেচ করার জন্য বিভিন্ন অপশন প্রদান করে।
উদাহরণ:
HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();
ICache<String, String> cache = hazelcastInstance.getCacheManager().getCache("myCache");
// ক্যাশে বস্তু যোগ করা
cache.put("key1", "value1");
// ক্যাশ থেকে বস্তু পড়া
String value = cache.get("key1");
Near Cache এমন একটি ক্যাশিং মেকানিজম, যা ক্যাশে ডেটা ক্লাস্টারের একাধিক নোডে সঞ্চয় না করে, শুধুমাত্র ক্যাশে ডেটার একটি কপি রাখা হয় এবং কাছাকাছি থাকা নোডে দ্রুত অ্যাক্সেস সুবিধা প্রদান করে। এটি ক্লাস্টার পারফরম্যান্সে উন্নতি ঘটায়।
উদাহরণ:
Config config = new Config();
NearCacheConfig nearCacheConfig = new NearCacheConfig();
nearCacheConfig.setName("myNearCache").setInMemoryFormat(InMemoryFormat.BINARY);
config.getMapConfig("myMap").setNearCacheConfig(nearCacheConfig);
HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance(config);
IMap<String, String> map = hazelcastInstance.getMap("myMap");
Hazelcast ক্যাশে বস্তুগুলির মেয়াদ শেষ হওয়া বা নির্দিষ্ট সময় পর মুছে ফেলার জন্য expiration এবং eviction পলিসি সমর্থন করে।
উদাহরণ:
MapConfig mapConfig = new MapConfig();
mapConfig.setTimeToLiveSeconds(300); // 5 মিনিটের জন্য বস্তুটি ক্যাশে থাকবে
Config config = new Config();
config.addMapConfig(mapConfig);
HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance(config);
Hazelcast Caching একটি ইন-মেমরি ডিস্ট্রিবিউটেড ক্যাশিং সিস্টেম, যা অ্যাপ্লিকেশনগুলির পারফরম্যান্স এবং স্কেলেবিলিটি উন্নত করতে সহায়ক। এটি JCache সমর্থন করে, Near Cache ফিচার প্রদান করে, এবং eviction ও expiration পলিসির মাধ্যমে ডেটা পরিচালনা করতে সক্ষম। Hazelcast এর ক্যাশিং সমাধান ব্যবহার করে, আপনি দ্রুত ডেটা অ্যাক্সেস, লোড ব্যালান্সিং এবং পারফরম্যান্স অপটিমাইজেশন পেতে পারেন।
Hazelcast Cache API একটি শক্তিশালী এবং উচ্চ-কার্যকারিতা ক্যাশিং সিস্টেম যা JCache (JSR 107) স্ট্যান্ডার্ডের ভিত্তিতে তৈরি। এটি Hazelcast ক্লাস্টারের মধ্যে ডেটা ইন-মেমরি ক্যাশিং করার জন্য ব্যবহৃত হয়। Hazelcast Cache API ডিস্ট্রিবিউটেড ক্যাশিং এবং ডেটা স্টোরেজের জন্য একটি সহজ এবং স্কেলেবল সমাধান প্রদান করে, যা অ্যাপ্লিকেশন পারফরম্যান্স এবং স্কেলেবিলিটি বৃদ্ধি করতে সাহায্য করে।
Hazelcast Cache API ইন-মেমরি ডেটা স্টোরেজের মাধ্যমে দ্রুত ডেটা অ্যাক্সেস নিশ্চিত করে, এবং এটি ডিস্ট্রিবিউটেড ক্যাশিং, সেশন ম্যানেজমেন্ট এবং অন্যান্য উচ্চ-পারফরম্যান্স ডেটা অপারেশন পরিচালনার জন্য কার্যকর।
Hazelcast Cache API JCache (JSR 107) স্ট্যান্ডার্ডের সাথে সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ। এটি একটি অভিন্ন ক্যাশিং API সরবরাহ করে যা জাভা অ্যাপ্লিকেশনগুলিতে ক্যাশ ব্যবহারের জন্য জনপ্রিয় স্ট্যান্ডার্ড।
Hazelcast Cache API ডেটা ক্লাস্টারের মধ্যে ভাগ করে, যা বিভিন্ন নোডে ডেটা সংরক্ষণ করতে সাহায্য করে। এটি ইন-মেমরি ক্যাশিং এবং ডিস্ট্রিবিউটেড ডেটা স্টোরেজের জন্য কার্যকর।
Hazelcast ক্যাশ API ডেটা অ্যাক্সেসের জন্য অত্যন্ত দ্রুত, কারণ এটি ইন-মেমরি স্টোরেজ ব্যবহার করে এবং ডেটা ফেচিংয়ের সময় কমিয়ে আনে।
Hazelcast Cache API ক্লাস্টারের মধ্যে ডেটা ভাগ করে, তাই এটি সহজেই স্কেল করা যায়। যখন ক্লাস্টারে নতুন নোড যুক্ত করা হয়, ক্যাশের ডেটা স্বয়ংক্রিয়ভাবে পুনর্বন্টিত হয়।
Hazelcast Cache API ডেটার রেপ্লিকেশন সমর্থন করে, যার মাধ্যমে একটি নোড ব্যর্থ হলেও অন্য নোড থেকে ক্যাশ ডেটা পাওয়া যায়।
Hazelcast ক্যাশ কনফিগারেশন খুবই নমনীয়, যেখানে আপনি ক্যাশের আকার, টাইম-টু-লিভ (TTL), ইভিকশন কৌশল এবং অন্যান্য সেটিংস কাস্টমাইজ করতে পারবেন।
Hazelcast Cache API একটি CacheManager এর মাধ্যমে ক্যাশ পরিচালনা করে। ক্যাশের মধ্যে ডেটা সংরক্ষণের জন্য, Cache অবজেক্ট ব্যবহার করা হয়, যা Key-Value পেয়ার হিসেবে ডেটা সঞ্চয় করে।
Hazelcast Cache API ব্যবহার করতে হলে প্রথমে একটি CacheManager তৈরি করতে হবে, এবং তারপর একটি Cache ইনস্ট্যান্স তৈরি করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো:
import javax.cache.CacheManager;
import javax.cache.Caching;
import javax.cache.configuration.MutableConfiguration;
CacheManager cacheManager = Caching.getCachingProvider().getCacheManager();
MutableConfiguration<String, String> config = new MutableConfiguration<>();
config.setStoreByValue(false)
.setStatisticsEnabled(true)
.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(Duration.ONE_MINUTE));
// Cache তৈরি করা
Cache<String, String> cache = cacheManager.createCache("myCache", config);
// Cache তে ডেটা যোগ করা
cache.put("key1", "value1");
// Cache থেকে ডেটা পড়া
String value = cache.get("key1");
System.out.println("Value for key1: " + value);
// Cache থেকে ডেটা মুছে ফেলা
cache.remove("key1");
cacheManager.close();
Hazelcast Cache API ব্যবহার করার সময় কিছু গুরুত্বপূর্ণ কনফিগারেশন সেটিংস রয়েছে, যেমন:
Hazelcast Cache API একটি শক্তিশালী এবং স্কেলেবল ক্যাশিং সমাধান প্রদান করে যা ইন-মেমরি ডেটা স্টোরেজ এবং ক্লাস্টারভিত্তিক ক্যাশিং সমর্থন করে। JCache (JSR 107) স্ট্যান্ডার্ডের মাধ্যমে এটি জাভা অ্যাপ্লিকেশনে ক্যাশ ব্যবহারের জন্য একটি অভিন্ন API প্রদান করে। Hazelcast Cache API দ্রুত ডেটা অ্যাক্সেস, স্কেলেবিলিটি, ফল্ট টলারেন্স এবং কাস্টম কনফিগারেশন সমর্থন করে, যা অ্যাপ্লিকেশন পারফরম্যান্স বৃদ্ধি করতে সাহায্য করে।
JCache (JSR 107) হলো একটি ক্যাশিং API স্ট্যান্ডার্ড যা Java প্ল্যাটফর্মের জন্য ডিফাইন করা হয়েছে। এটি ডিস্ট্রিবিউটেড এবং লোকাল ক্যাশ ম্যানেজমেন্টের জন্য একটি সাধারণ ইন্টারফেস প্রদান করে। Hazelcast JCache API সমর্থন করে, যা আপনাকে Hazelcast-কে JCache স্ট্যান্ডার্ডের মাধ্যমে ব্যবহার করতে সাহায্য করে। এই কনফিগারেশনের মাধ্যমে আপনি Hazelcast ক্যাশিং-এর শক্তিশালী সুবিধাগুলি JCache API এর সাহায্যে উপভোগ করতে পারবেন।
Hazelcast এ JCache (JSR 107) কনফিগারেশন করতে হলে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করতে হবে।
প্রথমে, আপনাকে Hazelcast-এর জন্য JCache কনফিগারেশন উপলব্ধ করতে হবে। Maven প্রকল্পে Hazelcast এবং JCache এর জন্য নির্দিষ্ট ডিপেনডেন্সি যুক্ত করতে হবে।
Maven Dependency Example:
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>5.0</version>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>javax.cache-api</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-jcache</artifactId>
<version>5.0</version>
</dependency>
এখানে hazelcast-jcache
ডিপেনডেন্সি Hazelcast এবং JCache ইন্টিগ্রেশনের জন্য প্রয়োজন।
Hazelcast JCache API ব্যবহার করতে হলে, আপনাকে Hazelcast কনফিগারেশন ফাইল বা কোডের মাধ্যমে CacheManager তৈরি করতে হবে। নিচে এর একটি উদাহরণ দেওয়া হলো:
import com.hazelcast.cache.Cache;
import com.hazelcast.cache.CacheManager;
import com.hazelcast.cache.impl.HazelcastCachingProvider;
import javax.cache.Cache;
import javax.cache.CacheException;
import javax.cache.configuration.MutableConfiguration;
import javax.cache.spi.CachingProvider;
import javax.cache.CacheManager;
public class JCacheExample {
public static void main(String[] args) {
// Caching Provider তৈরি
CachingProvider cachingProvider = HazelcastCachingProvider.createCachingProvider();
// CacheManager তৈরি
CacheManager cacheManager = cachingProvider.getCacheManager();
// Cache কনফিগারেশন তৈরি
MutableConfiguration<String, String> config = new MutableConfiguration<>();
config.setTypes(String.class, String.class); // Key এবং Value টাইপ
config.setStoreByValue(false); // Value বাই-রেফারেন্স বা বাই-ভ্যালু হবে
// Cache তৈরি করা
Cache<String, String> cache = cacheManager.createCache("myCache", config);
// Cache ব্যবহার
cache.put("key1", "value1");
System.out.println("Cache Value: " + cache.get("key1")); // "value1"
// Cache বন্ধ করা
cacheManager.close();
}
}
এখানে:
MutableConfiguration
ব্যবহার করে আপনি ক্যাশের কনফিগারেশন নির্ধারণ করতে পারবেন (যেমন কী-ভ্যালু টাইপ, স্টোর বাই-ভ্যালু বা বাই-রেফারেন্স ইত্যাদি)।Hazelcast এর সাথে JCache ব্যবহার করতে হলে, আপনাকে HazelcastCacheManager ব্যবহার করতে হবে, যা Hazelcast ক্যাশে অ্যাক্সেস করতে সহায়ক। এইভাবে আপনি Hazelcast ক্যাশ এবং JCache API এর মাধ্যমে একই ক্যাশ পরিচালনা করতে পারবেন।
import com.hazelcast.cache.Cache;
import com.hazelcast.cache.HazelcastCacheManager;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import javax.cache.Cache;
import javax.cache.CacheManager;
import javax.cache.configuration.MutableConfiguration;
public class HazelcastJCacheExample {
public static void main(String[] args) {
// Hazelcast instance তৈরি করা
HazelcastInstance hzInstance = Hazelcast.newHazelcastInstance();
// Hazelcast CacheManager তৈরি করা
HazelcastCacheManager cacheManager = (HazelcastCacheManager) hzInstance.getCacheManager();
// Cache কনফিগারেশন তৈরি করা
MutableConfiguration<String, String> config = new MutableConfiguration<>();
config.setTypes(String.class, String.class);
// Cache তৈরি করা
Cache<String, String> cache = cacheManager.createCache("myHazelcastCache", config);
// Cache ব্যবহার
cache.put("key1", "value1");
System.out.println("Hazelcast Cache Value: " + cache.get("key1")); // "value1"
// Cache বন্ধ করা
cacheManager.close();
}
}
এই উদাহরণে, আমরা Hazelcast ক্লাস্টারে JCache API ব্যবহার করে ক্যাশ তৈরি করেছি এবং তার মধ্যে ডেটা যোগ/পড়ে দেখেছি।
JCache (JSR 107) API Hazelcast ক্যাশিং সমাধানগুলির সাথে ইন্টিগ্রেশন করার একটি স্ট্যান্ডার্ড পদ্ধতি। Hazelcast জাভা প্ল্যাটফর্মের জন্য একটি অত্যন্ত স্কেলেবল ক্যাশিং সিস্টেম প্রদান করে যা জাভা অ্যাপ্লিকেশনে ইন-মেমরি ক্যাশিং কার্যকারিতা সক্ষম করে। Hazelcast-এর মাধ্যমে JCache কনফিগারেশন ও ব্যবহারে আপনি দ্রুত পারফরম্যান্স এবং স্কেলেবিলিটি অর্জন করতে পারেন।
Near Cache এবং Caching Techniques হল Hazelcast-এর গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ডেটা অ্যাক্সেসের গতি বৃদ্ধি করতে সাহায্য করে এবং সিস্টেমের পারফরম্যান্স উন্নত করে। Near Cache ব্যবহার করার মাধ্যমে আপনি ডেটাকে ক্লায়েন্ট সাইডে ক্যাশ করতে পারেন, যা মূল সার্ভার থেকে বারবার ডেটা রিট্রাইভালের প্রয়োজনীয়তা কমিয়ে দেয়। এটির মাধ্যমে ডেটা রিটার্নের সময় কমানো এবং সিস্টেমের স্কেলেবিলিটি বৃদ্ধি করা সম্ভব হয়।
এখানে Near Cache এবং Caching Techniques-এর বিস্তারিত আলোচনা করা হলো:
Near Cache হল একটি ক্যাশিং মেকানিজম যা Hazelcast ক্লায়েন্টে ক্যাশ রাখা হয়। এটি ক্লায়েন্ট সাইডে ডেটা সংরক্ষণ করে, যাতে ডেটা দ্রুত অ্যাক্সেস করা যায় এবং সার্ভার থেকে অতিরিক্ত রিকোয়েস্ট না পাঠাতে হয়।
Config config = new Config();
MapConfig mapConfig = new MapConfig();
mapConfig.setName("myMap")
.setNearCacheConfig(new NearCacheConfig().setInMemoryFormat(InMemoryFormat.BINARY));
config.addMapConfig(mapConfig);
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);
IMap<String, String> map = hz.getMap("myMap");
map.put("key", "value");
// Closer to the client-side, data is fetched directly from Near Cache
String value = map.get("key"); // This fetches the data from Near Cache, not from the server
Hazelcast ক্যাশিং মেকানিজম অনেক ধরনের কৌশল এবং পদ্ধতি ব্যবহার করে, যা সিস্টেমের পারফরম্যান্স উন্নত করে এবং ডেটা অ্যাক্সেসের গতি বাড়ায়। নিচে Hazelcast-এর বিভিন্ন ক্যাশিং কৌশল এবং তাদের ব্যবহার উল্লেখ করা হল:
Hazelcast JCache API (JSR 107) সমর্থন করে, যা ক্যাশিংয়ের জন্য একটি স্ট্যান্ডার্ড। এটি বিভিন্ন ক্যাশ অপারেশন, যেমন put, get, remove, clear ইত্যাদি করার জন্য ব্যবহৃত হয়।
JCache উদাহরণ:
// Create cache configuration
CacheConfig<String, String> cacheConfig = new CacheConfig<>();
cacheConfig.setName("myCache");
Cache<String, String> cache = hazelcastInstance.getCacheManager().createCache("myCache", cacheConfig);
// Add and get data from the cache
cache.put("key", "value");
String cachedValue = cache.get("key");
Near Cache-এ ক্লায়েন্ট সাইডে ডেটা সংরক্ষণ করা হয়, যাতে তা দ্রুত অ্যাক্সেস করা যায় এবং সার্ভারের উপর লোড কমানো যায়। এটি বিশেষভাবে কার্যকর যখন ডেটা পুনরায় ব্যবহার হয় এবং সিস্টেমে অধিক লোড নেই।
Hazelcast ক্যাশে স্টোরেজের জন্য বিভিন্ন Eviction Policies প্রয়োগ করতে পারে:
Hazelcast-এর ডিস্ট্রিবিউটেড ক্যাশে ডেটা রেপ্লিকেশন সমর্থন করে, যেখানে ডেটার কপি একাধিক ক্লাস্টার নোডে সঞ্চিত থাকে। এটি ডেটা পাওয়া সহজ করে এবং উচ্চ উপলব্ধতা নিশ্চিত করে।
Near Cache এবং Caching Techniques Hazelcast-এর অত্যন্ত কার্যকরী ক্যাশিং বৈশিষ্ট্য যা ডেটা অ্যাক্সেসের গতি বাড়ায় এবং সিস্টেমের পারফরম্যান্স উন্নত করে। Near Cache ক্লায়েন্ট সাইডে ডেটা ক্যাশ করে এবং অন্যান্য ক্যাশিং কৌশল যেমন TTL, Eviction Policies, এবং JCache সমর্থন করে বিভিন্ন ডেটা অ্যাক্সেস অপটিমাইজেশন কৌশল।
Hazelcast Cache ব্যবহারের সময় পারফরম্যান্স অপটিমাইজেশন এবং কনফিগারেশন গুরুত্বপূর্ণ ভূমিকা পালন করে। ক্যাশিং শুধুমাত্র ডেটা অ্যাক্সেসের গতি বাড়ানোর জন্য নয়, বরং সিস্টেমের সামগ্রিক কার্যকারিতা এবং স্থায়িত্ব নিশ্চিত করতে ব্যবহৃত হয়। এই গাইডে, আমরা Cache Performance Optimization এবং Expiration কৌশলগুলি নিয়ে আলোচনা করব, যা Hazelcast ক্যাশে এর কার্যক্ষমতা এবং ব্যবস্থাপনা উন্নত করতে সহায়ক।
ক্যাশিং হল ডেটা দ্রুত অ্যাক্সেসের জন্য মেমরি ব্যবহার করা, যা ডিস্কের তুলনায় অনেক দ্রুত। তবে, এটি কার্যকরভাবে কাজ করার জন্য কিছু অপটিমাইজেশন কৌশল প্রয়োজন। Hazelcast ক্যাশ পারফরম্যান্স অপটিমাইজ করতে নিম্নলিখিত কৌশলগুলি অনুসরণ করা যেতে পারে:
Near Cache হল Hazelcast-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ক্লায়েন্টে ক্যাশের একটি স্থানীয় কপি বজায় রাখে। এটি ক্যাশে ডেটার অ্যাক্সেস দ্রুত করে, বিশেষ করে যখন একাধিক ক্লায়েন্ট একই ডেটা অ্যাক্সেস করে। Near Cache ব্যবহার করার মাধ্যমে অ্যাপ্লিকেশনের রেসপন্স টাইম অনেক কমে যায়।
Near Cache এর সুবিধা:
Hazelcast ক্যাশে সাইজ এবং ইভিকশন কৌশল সঠিকভাবে কনফিগার করলে পারফরম্যান্স উন্নত হয়। ক্যাশে যদি অনেক বেশি ডেটা ধারণ করতে থাকে, তবে এটি মেমরির পারফরম্যান্স কমিয়ে দিতে পারে। অতিরিক্ত ডেটা ইভিকট করা হলে পুরানো ডেটা স্বয়ংক্রিয়ভাবে মুছে যাবে।
Eviction Policy:
TTL (Time-To-Live) কনফিগারেশন দ্বারা ক্যাশে ডেটা কত সময়ের জন্য বৈধ থাকবে তা নির্ধারণ করা হয়। একটি সুনির্দিষ্ট সময় পর ডেটা প্রাচীন হয়ে যাবে এবং ক্যাশ থেকে মুছে যাবে।
TTL কনফিগারেশন:
Config config = new Config();
MapConfig mapConfig = new MapConfig();
mapConfig.setTimeToLiveSeconds(3600); // 1 ঘণ্টা
config.addMapConfig(mapConfig);
Cache Expiration হল ক্যাশে রাখা ডেটা কত সময় পর অকার্যকর হয়ে যাবে তা নির্ধারণ। এটি ব্যবহৃত হয় ডেটা কনসিস্টেন্সি বজায় রাখতে এবং অবাঞ্ছিত ডেটা মুছে ফেলার জন্য।
Cache Expiration কৌশল:
ক্যাশে ডেটার এক্সপিরেশন কৌশল সঠিকভাবে কনফিগার করলে সিস্টেমের কর্মক্ষমতা বৃদ্ধি পায়। ক্যাশে ডেটা খুব বেশি সময় ধরে থাকতে পারে না, কারণ তা স্ট্যাল ডেটা তৈরি করতে পারে এবং বেস ডেটাবেজের সাথে কনসিস্টেন্সি বজায় রাখতে সমস্যা হতে পারে। সঠিক এক্সপিরেশন কৌশল প্রয়োগের মাধ্যমে এই সমস্যা এড়ানো যায়।
Hazelcast Expiration Event Listener প্রদান করে, যা ক্যাশে ডেটা এক্সপিরেশন হওয়ার পর একটি ইভেন্ট সিস্টেমের মাধ্যমে ব্যবহারকারীদের অবহিত করে। এটি ডেটার পরিবর্তন বা মুছে যাওয়ার পরে কার্যকর হতে পারে।
Example:
Map<String, String> map = hazelcastInstance.getMap("myMap");
map.addEntryListener(new EntryExpiredListener<String, String>() {
@Override
public void entryExpired(EntryEvent<String, String> event) {
System.out.println("Expired Entry: " + event.getKey());
}
}, true);
Hazelcast ক্যাশ পারফরম্যান্স অপটিমাইজেশন এবং এক্সপিরেশন কৌশলগুলি ব্যবহার করে আপনি ক্যাশিং সিস্টেমের কার্যকারিতা উন্নত করতে পারেন। Near Cache ব্যবহার করা, TTL এবং Expiration কৌশল সঠিকভাবে কনফিগার করা এবং Eviction Policy ব্যবহার করে আপনার Hazelcast ক্যাশে পারফরম্যান্স বৃদ্ধির পাশাপাশি ডেটার কনসিস্টেন্সি এবং সিস্টেমের স্থায়িত্ব নিশ্চিত করতে সাহায্য করবে।
common.read_more